package com.sg.dto.base.finance.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * @desc QueryFinanceAccountListReq
 * @使用场景
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class QueryFinanceAccountListReq
        extends BaseDto
        implements Serializable {

    /**
     * 上级账户归属主体标识
     */
    @ApiModelProperty("上级账户归属主体标识")
    private String parentAccountContentCode;

    /**
     * 账户状态 LOCK:锁定 NORMAL:正常
     */
    @ApiModelProperty("账户状态")
    private String accountStatus;

    /**
     * 是否结束状态 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否结束状态")
    private String isEndStatus;

    /**
     * 账户类型 POOL_ACCOUNT:发行账户 ECOLOGICAL_ACCOUNT:生态账户
     */
    @ApiModelProperty("账户类型")
    private String accountTypeCode;

    /**
     * 是否预算账户 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否预算账户")
    private String isBudgetAccount;

    /**
     * 是否统计账户 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否统计账户")
    private String isStatisticalAccount;

    /**
     * 是否到账账户 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否到账账户")
    private String isIncomingAccount;

    /**
     * 关联归属主体ID
     */
    @ApiModelProperty("关联归属主体ID")
    private String accountObjectId;

    /**
     * 关联归属主体类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标 DEPT:部门
     */
    @ApiModelProperty("关联归属主体类型编码")
    private String accountObjectTypeCode;

    /**
     * 账户关联主体分类类型 CONTENT_TYPE:内容分类 ORGANIZATIONAL_STRUCTURE_TYPE:组织架构分类
     */
    @ApiModelProperty("账户关联主体分类类型")
    private String accountObjectClass;

    /**
     * 生态账户类型编码 ORG_POOL_ACCOUNT:组织发行账户 TARGET_CONTENT_ACCOUNT:目标内容账户
     */
    @ApiModelProperty("生态账户类型编码")
    private String ecologicalAccountTypeCode;

    /**
     * 发行体系类型编码 CAPITAL_SYSTEM:资金体系 INTEGRAL_SYSTEM:积分体系
     */
    @ApiModelProperty("发行体系类型编码")
    private String distributionSystemTypeCode;

    /**
     * 主题内容ID
     */
    @ApiModelProperty("主题内容ID")
    private String themeContentId;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 是否作废 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否作废")
    private String isValid;

    /**
     * 创建于空间ID
     */
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

}
